--退转件明细
 --时间：2022-08-16
 --开发：侯文龙
 insert overwrite table jms_dm.dm_reback_transfer_waybill_type_detail_dt partition(dt)
        select
           final_plan_sign_time         --规划签收时间
          ,substr(final_plan_sign_time,12,8) as deadline_signing_time        --规划签收截止时间
          ,end_center_send_time         --末端中心
          ,end_manage_region_code       --末端网点所属管理大区编码
          ,end_manage_region_name       --末端网点所属管理大区名称
          ,end_provider_id              --末端网点所属省份id
          ,end_provider_name            --末端网点所属省份名称
          ,end_city_id                  --末端网点所属城市id
          ,end_city_name                --末端网点所属城市名称
          ,end_area_id                  --末端网点所属区县id
          ,end_center_code              --末端发件中心
          ,end_center_name              --末端发件中心
          ,end_agent_code               --末端网点所属代理区编码
          ,end_agent_name               --末端网点所属代理区名称
          ,end_franchisee_code          --末端网点所属加盟商编码
          ,end_franchisee_name          --末端网点所属加盟商名称
          ,end_network_code             --末端到件网点编码
          ,end_network_name             --末端到件网点名称
          ,send_next_station_code       --末端中心/集散发件下一站编码
          ,send_next_station_name       --末端中心/集散发件下一站编码
          ,billcode                     --运单号
          ,deliver_shift                --派件派仓班次
          ,order_source_code            --订单来源编码
          ,order_source_name            --订单来源编码
          ,entry_type                   --退件类型
          ,reback_transfer_apply_time   --退件登记时间
          ,apply_network_code           --登记网点编码
          ,apply_network_name           --登记网点名称
          ,print_network_code           --面单打印网点编码
          ,print_network_name           --面单打印网点名称
          ,print_time                   --面单打印时间
          ,deliver_time                 --出仓时间
          ,aging_sign_time              --时效签收时间
          ,actual_sign_time             --实际签收时间
          ,deliver_township_id          --出仓乡镇id
          ,deliver_township_name        --出仓乡镇名称
          ,special_extra_time           --跨越天数_出仓乡镇
          ,customer_code                --客户编码
          ,customer_name                --客户名字
          ,deliver_user_code            --出仓派件员编码
          ,final_sign_user_code         --最后签收派件员编码
          ,final_sign_user_name         --最后签收派件员名称
          ,is_aging_sign_22            --是否是22点时效签收准点
          ,if(aging_sign_time > concat_ws(' ',date_format(final_plan_sign_time, 'yyyy-MM-dd'),'22:00:00') and aging_sign_time <= concat_ws(' ',date_format(final_plan_sign_time, 'yyyy-MM-dd'),'23:59:59'),1,0) is_aging_sign_24  -- 22-24点前时效签收准点 1准点 0不准点
          ,if(aging_sign_time >final_plan_sign_time and aging_sign_time >concat_ws(' ',date_format(final_plan_sign_time, 'yyyy-MM-dd'),'22:00:00') and aging_sign_time is not null ,1,0) after_aging_sign_22  -- 22点后延误签收 1延误 0不延误
          , 2 as type1
          ,to_date(final_plan_sign_time) as date_time   --规划签收日期
             ,planned_departure_time   --规划发车时间
             ,is_departure_on_time --接件是否准点
             ,planned_arrival_time --规划到车时间
             ,end_network_arrival_time --末端网点到件时间
             ,is_arrival_on_time --到车是否晚点
             ,warehouse_end_time --派仓结束时间
             ,is_deliver_on_time --出仓是否准时
             ,deliver_type --出仓不准点类型
             ,is_deliver_township_on_time  --乡镇出仓是否准点
             ,final_sign_network_code  --规划签收网点code
             ,final_sign_network_name  --规划签收网点
             ,actual_departure_time  --实际接件时间
             ,end_time
            ,end_piece_type_code
            ,end_piece_type_desc
            ,sign_type
             ,aging_sign_scan_type -- 时效签收扫描类型
          ,to_date(final_plan_sign_time) as dt
        from jms_dm.dm_reback_transfer_waybill_detail_dt
        where dt>=date_add('{{ execution_date | cst_ds }}',-45)
        and dt<='{{ execution_date | cst_ds }}'
        and print_time< end_center_send_time
        and to_date(final_plan_sign_time)> date_add('{{ execution_date | cst_ds }}',-30)
        and to_date(final_plan_sign_time)<= '{{ execution_date | cst_ds }}'
        union all
        select
           final_plan_sign_time         --规划签收时间
          ,substr(final_plan_sign_time,12,8) as deadline_signing_time        --规划签收截止时间
          ,end_center_send_time         --末端中心
          ,end_manage_region_code       --末端网点所属管理大区编码
          ,end_manage_region_name       --末端网点所属管理大区名称
          ,end_provider_id              --末端网点所属省份id
          ,end_provider_name            --末端网点所属省份名称
          ,end_city_id                  --末端网点所属城市id
          ,end_city_name                --末端网点所属城市名称
          ,end_area_id                  --末端网点所属区县id
          ,end_center_code              --末端发件中心
          ,end_center_name              --末端发件中心
          ,end_agent_code               --末端网点所属代理区编码
          ,end_agent_name               --末端网点所属代理区名称
          ,end_franchisee_code          --末端网点所属加盟商编码
          ,end_franchisee_name          --末端网点所属加盟商名称
          ,end_network_code             --末端到件网点编码
          ,end_network_name             --末端到件网点名称
          ,send_next_station_code       --末端中心/集散发件下一站编码
          ,send_next_station_name       --末端中心/集散发件下一站名字
          ,billcode                     --运单号
          ,deliver_shift                --派件派仓班次
          ,order_source_code            --订单来源编码
          ,order_source_name            --订单来源编码
          ,entry_type                   --退件类型
          ,reback_transfer_apply_time   --退件登记时间
          ,apply_network_code           --登记网点编码
          ,apply_network_name           --登记网点名称
          ,print_network_code           --面单打印网点编码
          ,print_network_name           --面单打印网点名称
          ,print_time                   --面单打印时间
          ,deliver_time                 --出仓时间
          ,aging_sign_time              --时效签收时间
          ,actual_sign_time             --实际签收时间
          ,deliver_township_id          --出仓乡镇id
          ,deliver_township_name        --出仓乡镇名称
          ,special_extra_time           --跨越天数_出仓乡镇
          ,customer_code                --客户编码
          ,customer_name                --客户名字
          ,deliver_user_code            --出仓派件员编码
          ,final_sign_user_code         --最后签收派件员编码
          ,final_sign_user_name         --最后签收派件员名称
          ,is_aging_sign_22            --是否是22点时效签收准点
          ,if(aging_sign_time > concat_ws(' ',date_format(final_plan_sign_time, 'yyyy-MM-dd'),'22:00:00') and aging_sign_time <= concat_ws(' ',date_format(final_plan_sign_time, 'yyyy-MM-dd'),'23:59:59'),1,0) is_aging_sign_24  -- 22-24点前时效签收准点 1准点 0不准点
          ,if(aging_sign_time >final_plan_sign_time and aging_sign_time >concat_ws(' ',date_format(final_plan_sign_time, 'yyyy-MM-dd'),'22:00:00') and aging_sign_time is not null,1,0) after_aging_sign_22  -- 22点后延误签收 1延误 0不延误
          , 1 as type1                  --类型 发件维度：1   签收维度：2
          ,to_date(end_center_send_time) as date_time  --末端发件日期
              ,planned_departure_time   --规划发车时间
             ,is_departure_on_time --接件是否准点
             ,planned_arrival_time --规划到车时间
             ,end_network_arrival_time --末端网点到件时间
             ,is_arrival_on_time --到车是否晚点
             ,warehouse_end_time --派仓结束时间
             ,is_deliver_on_time --出仓是否准时
             ,deliver_type --出仓不准点类型
             ,is_deliver_township_on_time
             ,final_sign_network_code  --规划签收网点code
             ,final_sign_network_name  --规划签收网点
             ,actual_departure_time  --实际接件时间
             ,end_time
            ,end_piece_type_code
            ,end_piece_type_desc
            ,sign_type
             ,aging_sign_scan_type -- 时效签收扫描类型
          ,to_date(end_center_send_time) as dt         --分区
        from jms_dm.dm_reback_transfer_waybill_detail_dt
        where dt>=date_add('{{ execution_date | cst_ds }}',-45)
        and dt<='{{ execution_date | cst_ds }}'
        and print_time< end_center_send_time
        and to_date(end_center_send_time)>date_add('{{ execution_date | cst_ds }}',-30)
        and to_date(end_center_send_time)<='{{ execution_date | cst_ds }}'
distribute by dt, abs(hash(billcode)) % 2;

